import os
import shutil

def copy_files_with_parent_dirs(src_dir, target_dir, filename):
    # 遍历源目录及其子目录
    for root, dirs, files in os.walk(src_dir):
        # 检查当前目录下的文件
        for file in files:
            if file == filename:
                # 获取文件的完整路径
                src_file_path = os.path.join(root, file)
                # 计算相对于源目录的相对路径
                relative_path = os.path.relpath(src_file_path, src_dir)
                # 构建目标目录下的对应路径
                target_file_path = os.path.join(target_dir, relative_path)
                
                # 创建目标目录（如果不存在）
                target_dir_path = os.path.dirname(target_file_path)
                os.makedirs(target_dir_path, exist_ok=True)
                
                # 复制文件
                shutil.copy2(src_file_path, target_file_path)
                print(f"Copied {src_file_path} to {target_file_path}")

# 调用函数
source_directory = 'E:\\小象第二批\\zhungeer2.7z\\准格尔金诚2'
destination_directory = 'E:\\小象第二批\\zhungeer2.7z\\身份证'
file_to_copy = '身份证正面.jpg'
copy_files_with_parent_dirs(source_directory, destination_directory, file_to_copy)
